home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / CADAR / Symbols / Other / split-to-parts < prev    next >
Lisp/Scheme  |  1998-10-22  |  1KB  |  45 lines

  1. split-to-parts 
  2. name symbol-list &rest length-lists  
  3.  
  4.  
  5. this function is the same as MRAC m-consecutive
  6. that is a melody-line is split to several parts.
  7. this way you can get a melody line to cross between
  8. instruments
  9. when to or more rhythms occur on the same beat it
  10. always selects in order top->down 
  11.  
  12. (split-to-parts nil '(a b c d e) 
  13. '(1/8 1/4 1/4 1/4 1/8)
  14.  '(1/4 1/2 1/8 1/8))
  15. ->((a c e a c) (b d b d))
  16.  
  17. it is easiest to view the result in a scoreprogram. 
  18.  
  19. (split-to-parts nil '(a b c d e) 
  20. '(1/8 1/8 1/8 1/8 1/8 1/8 1/8 1/8)
  21.  '(1/16 1/16 1/16 1/16 1/1)
  22.  '(1/4 1/2 1/8 1/8)
  23.  '(1/12 1/12 1/12 1/1 1/4 1/8)) 
  24. ->((a b a e a b c e) (b e c e b) (c c d a) (d a d d b c))
  25.  
  26. when name is not nil binds result to name with setq.
  27. it evaluates so the material is ready to use.
  28.  
  29. (split-to-parts 'rhy '(a b c d e) 
  30. '(1/8 1/8 1/8 1/8 1/8 1/8 1/8 1/8)
  31.  '(1/16 1/16 1/16 1/16 1/1)
  32.  '(1/4 1/2 1/8 1/8)
  33.  '(1/12 1/12 1/12 1/1 1/4 1/8))
  34. -> prints:
  35. (setq rhy1 '(a b a e a b c e)) 
  36. (setq rhy2 '(b e c e b)) 
  37. (setq rhy3 '(c c d a)) 
  38. (setq rhy4 '(d a d d b c)) 
  39.  
  40. and without evaluating now rhy1 is '(a b a e a b c e)
  41. and so on.
  42.  
  43.  
  44. see also its counter-function split-to-unison
  45.